home *** CD-ROM | disk | FTP | other *** search
- Attribute VB_Name = "SlsApi"
- ' This is a part of the Sheriff System Development Kit.
- ' Copyright (C) 1997-1998 Acudata Limted.
- ' All rights reserved.
- '
- ' This source code is only intended as a supplement to the
- ' Sheriff System Development Kit and related
- ' electronic documentation provided with the SDK.
-
- 'Challenge protocol
- Public Const SLS_NO_PROTOCOL = &H0&
- Public Const SLS_BASIC_PROTOCOL = &H1&
-
- Public Const SLS_REMOVE_FILES = &H1& 'remove licence files
- Public Const SLS_REMOVE_REGISTRY = &H2& 'remove licence registry
- Public Const SLS_REMOVE_HISTORY = &H4& 'remove licence history
- Public Const SLS_REMOVE_ALL = &H7& 'remove all of above
-
- 'state of licence
- Public Const SLS_STATE_UNDEFINED = &H0& 'Licence type and contents to be specified
- Public Const SLS_STATE_BAD = &H1& 'Licence has being illegally modified
- Public Const SLS_STATE_EXPIRED = &H2& 'Licence has expired
- Public Const SLS_STATE_EXHAUSTED = &H3& 'Licence units has run out
- Public Const SLS_STATE_OK = &H8& 'Licence is valid
-
- 'type of licence
- Public Const SLS_TYPE_UNDEFINED = &H0& 'Undefined
- Public Const SLS_TYPE_UNIT_METER = &H1& 'Unit Metering
- Public Const SLS_TYPE_TIME_METER = &H2& 'Time Metering
- Public Const SLS_TYPE_EXPIRATION = &H4& 'Expiry Control
- Public Const SLS_TYPE_CONCURRENCY = &H8& 'Concurrency Control
-
- Public Const SLS_TYPE_LIFETIME_KEY = &H100& 'Lifetime key
- Public Const SLS_TYPE_LIFETIME_REF = &H200& 'Lifetime Reference
- Public Const SLS_TYPE_UNEXPORTABLE = &H400& 'Unexportable
- Public Const SLS_TYPE_STANDALONE = &H800& 'Standalone
-
- Type SLS_DATE
- Year As Long
- Month As Long
- Day As Long
- End Type
-
- Type SLS_LICENCE
- Type As Long 'type of licence
- Meter As Long 'for metering, e.g. Unit, Time mertering
- EndDate As SLS_DATE 'for expiration date
- CoUsers As Long 'Concurrent users
- AccessKey As Long 'Access control key
- End Type
-
- Type SLS_REQUEST
- UnitsReserved As Long
- End Type
-
- Type SLS_PERMIT
- 'State as integer 'state of licence permit
- UnitsGranted As Long
- AccessKey As Long
- End Type
-
- Type SLS_UPDATE
- UnitsReserved As Long
- UnitsConsumed As Long
- End Type
-
- Type SLS_RELEASE
- UnitsConsumed As Long
- End Type
-
- 'types for challenging
- Type SLS_MSG_DIGEST
- MessageDigest(16) As Byte 'binary data
- End Type
-
- Type SLS_CHALLDATA
- SecretIndex As Long
- Random As Long
- MsgDigest As SLS_MSG_DIGEST
- End Type
-
- Type SLS_CHALLENGE
- Protocol As Long
- Size As Long
- ChallengeData As SLS_CHALLDATA
- End Type
-
- 'Indentity used by challenge only
- Type SLS_IDENTITY
- IdName(128) As Byte
- Version(32) As Byte
- Publisher(256) As Byte
- End Type
-
- 'Secret used for challenge
- Type SLS_SECRET
- Secret(128) As Byte
- End Type
-
- Type SLS_MAC 'Message Authentication Code
- MessageDigest(16) As Byte 'binary data
- End Type
-
- 'types for suit implementation
- Type SLS_PRODUCT
- ProductID(32) As Byte
- ProductName(128) As Byte
- End Type
-
- Type SLS_SUIT
- NumberOfProducts As Long
- pProducts As Long
- End Type
-
- 'Licence Handle
- 'typedef DWORD SLS_HANDLE
-
- 'LSQueryLicenceInfo
- Type SLS_LICENCE_INFO
- 'Licence Part
- Type As Long 'type of licence
- Meter As Long 'Units or Days limit
- EndDate As SLS_DATE 'Expiration date
- CoUsers As Long 'Concurrent users
- AccessKey As Long 'Access control key
- 'Usage Part
- State As Long 'State of licence
- MeterUsage As Long 'for metering only(units used, days used)
- StartDate As SLS_DATE 'Start date
- ActiveUsers As Long 'Number of active users
- End Type
-
- 'LSQueryProductInfo
- Type SLS_PRODUCT_INFO
- SuitID(32) As Byte
- ProductID(32) As Byte
- ProductName(128) As Byte
- PublisherName(128) As Byte
- PublisherInfo(256) As Byte
- End Type
-
- Type SLS_OPTIONS
- HeartbeatTime As Long 'heartbeat time
- ReclaimTime As Long 'reclaim time
- Reserved1 As Long 'reserved, should be set to 0
- Reserved2 As Long 'reserved, should be set to 0
- End Type
-
- '
- '[C++ Header: licscode.h]
- '
-
- 'Everything is fine
- Public Const SLS_SUCCESS = &H0&
- 'General Error (unknown error)
- Public Const SLS_ERROR = &H80041000
-
- 'System Error
- Public Const SLS_E_SYSTEM_ERROR = &H80041001
-
- 'Invalid Product Code
- Public Const SLS_E_PRODUCT_CODE = &H80041002
- 'Invalid Reference Code
- Public Const SLS_E_REFERENCE_CODE = &H80041003
- 'Invalid Machine Code
- Public Const SLS_E_MACHINE_CODE = &H80041004
- 'Invalid System Time
- Public Const SLS_E_SYSTEM_TIME = &H80041005
- 'Not Enough Memory
- Public Const SLS_E_OUT_OF_MEMORY = &H80041006
- 'Not Enough Handle
- Public Const SLS_E_OUT_OF_HANDLE = &H80041007
- 'Illegal Challenge
- Public Const SLS_E_CHALLENGE_ILLEGAL = &H80041008
- 'Unsuported challenge
- Public Const SLS_E_CHALLENGE_UNSUPORTED = &H80041009
- 'Connction Sink ID invalid
- Public Const SLS_E_CONNECTION_ID = &H8004100A
- 'Invalid Queue Number
- Public Const SLS_E_QUEUE_NUMBER = &H8004100B
- 'Queue Too Long
- Public Const SLS_E_QUEUE_TOO_LONG = &H8004100C
- 'Failed To Locate Database Path
- Public Const SLS_E_DATABASE_PATH = &H8004100D
- 'Invalid SuitID
- Public Const SLS_E_SUIT_ID = &H8004100E
- 'Unregistered Suit
- Public Const SLS_E_SUIT_UNREGISTERED = &H8004100F
- 'Invalid Augument passed to function
- Public Const SLS_E_AUGUMENT_INVALID = &H80041010
- 'Invalid Handle
- Public Const SLS_E_LICENCE_HANDLE = &H80041011
- 'Unregistered product/licence
- Public Const SLS_E_LICENCE_UNREGISTERED = &H80041012
- 'Licence Undefined
- Public Const SLS_E_LICENCE_UNDEFINED = &H80041013
- 'Licence (run out of cocurrent users)
- Public Const SLS_E_LICENCE_EXCEEDED = &H80041014
- 'Licence Exhausted (run out of meter units)
- Public Const SLS_E_LICENCE_EXHAUSTED = &H80041015
- 'Licence Expired
- Public Const SLS_E_LICENCE_EXPIRED = &H80041016
- 'Licence Invalid (corrupted, tamped)
- Public Const SLS_E_LICENCE_INVALID = &H80041017
- 'Licence Suspended
- Public Const SLS_E_LICENCE_SUSPENDED = &H80041018
- 'Licence Terminated
- Public Const SLS_E_LICENCE_TERMINATED = &H80041019
- 'Licence Unavaliable
- Public Const SLS_E_LICENCE_UNAVAILABLE = &H8004101A
- 'Licence unit not defined
- Public Const SLS_E_UNIT_UNDEFINED = &H8004101B
- 'Licence unit shortage (units been reserved)
- Public Const SLS_E_UNIT_EXCEEDED = &H8004101C
- 'Index used to enumerate products
- Const SLS_E_PRODUCT_INDEX = &H8004101D
- 'Bad Secret
- Public Const SLS_E_BAD_SECRET = &H8004101E
- 'Bad MAC(Message Authentication Code)
- Public Const SLS_E_BAD_MAC = &H8004101F
-
- 'Licence File Error(used by Sheriff Light only)
- 'The file could not be located.
- Public Const SLS_E_FILE_NOT_FOUND = &H80041020
- 'All or part of the path is invalid.
- Public Const SLS_E_FILE_BAD_PATH = &H80041021
- 'The permitted number of open files was exceeded.
- Public Const SLS_E_FILE_TOO_MANY = &H80041022
- 'The file could not be accessed
- Public Const SLS_E_FILE_ACCESS_DENIED = &H80041023
- 'There was an attempt to use an invalid file handle.
- Public Const SLS_E_FILE_BAD_HANDLE = &H80041024
- 'There was an error trying to set the file pointer.
- Public Const SLS_E_FILE_BAD_SEEK = &H80041025
- 'There was a hardware error.
- Public Const SLS_E_FILE_HARDIO = &H80041026
- 'SHARE.EXE was not loaded, or a shared region was locked.
- Public Const SLS_E_FILE_SHARING = &H80041027
- 'There was an attempt to lock a region that was already locked.
- Public Const SLS_E_FILE_LOCKING = &H80041028
- 'The disk is full.
- Public Const SLS_E_FILE_DISK_FULL = &H80041029
- 'The end of file was reached.
- Public Const SLS_E_FILE_EOF = &H8004102A
- 'CRC error
- Public Const SLS_E_FILE_BAD_CRC = &H8004102B
- 'Signature error
- Public Const SLS_E_FILE_BAD_SIGNATURE = &H8004102C
- 'Corruption
- Public Const SLS_E_FILE_BAD_DATA = &H8004102D
- 'Disk Signature error
- Public Const SLS_E_DISK_BAD_SIGNATURE = &H8004102E
- 'Failed to Remove Licence
- Public Const SLS_E_FILE_REMOVE_FAILED = &H8004102F
- 'Invalid Licence Path
- Public Const SLS_E_PATH_INVALID = &H80041030
- 'Failed to create licecne path
- Public Const SLS_E_PATH_CREATE = &H80041031
- 'Access(Read/Write) Denied
- Public Const SLS_E_PATH_ACCESS_DENIED = &H80041032
- 'Registery operation failure
- Public Const SLS_E_REG_FAILURE = &H80041033
- 'Licence File been tampered
- Public Const SLS_E_BAD_LICENCE = &H80041034
- 'Registry has been tampered
- Public Const SLS_E_BAD_REGISTRY = &H80041035
- 'Machine Signature is wrong
- Public Const SLS_E_BAD_MACHINE = &H80041036
- 'Failed to get machine code
- Public Const SLS_E_OP_MACHINE_CODE = &H80041037
- 'Failed to get machine signature
- Public Const SLS_E_OP_MACHINE_SIGN = &H80041038
- 'Failed to get file signature
- Public Const SLS_E_OP_FILE_SIGN = &H80041039
- 'Failed to get disk signature
- Public Const SLS_E_OP_DISK_SIGN = &H8004103A
- 'Failed to terminate licence
- Public Const SLS_E_OP_TERMINATION = &H8004103B
- 'licence error
- Public Const SLS_E_LICENCE_BAD_TIME = &H8004103C
- 'licence error
- Public Const SLS_E_LICENCE_BAD_UNIT = &H8004103D
- 'licence error
- Public Const SLS_E_LICENCE_BAD_DATE = &H8004103E
- 'licence error
- Public Const SLS_E_LICENCE_BAD_COUSERS = &H8004103F
- 'licence error
- Public Const SLS_E_LICENCE_BAD_ACCESSKEY = &H80041040
- 'Licence key is incorrect
- Public Const SLS_E_LICENCE_BAD_LICKEY = &H80041041
- 'bad import licence key
- Public Const SLS_E_IMPORT_BAD_LICKEY = &H80041042
- 'incorrect import source signature
- Public Const SLS_E_IMPORT_BAD_SOURCE = &H80041043
- 'Cannot reinstate licence
- Public Const SLS_E_REINSATTE_BAD_SOURCE = &H80041044
- 'Export not allowed
- Public Const SLS_E_EXPORT_NOT_ALLOWED = &H80041045
- 'User Index out of range
- Public Const SLS_E_BAD_USER_INDEX = &H80041046
- 'Machchine Signatures in reference do not match
- Public Const SLS_E_UPID_SIGNATURE_REF = &H80041047
- 'Product Signatures in reference do not match
- Public Const SLS_E_UMID_SIGNATURE_REF = &H80041048
- 'Machchine Signatures in licence key do not match
- Public Const SLS_E_UPID_SIGNATURE_KEY = &H80041049
- 'Refernece Signatutes in licence key do not match
- Public Const SLS_E_REF_SIGNATURE_KEY = &H8004104A
-
- '
- '[C++ Header: SlsApi.h]
- '
- Declare Function SLS_Register Lib "SlsApi" ( _
- ByVal pszProductID As String, _
- ByVal pszProductName As String, _
- ByVal pszLicencePath As String) As Long
-
- Declare Function SLS_License Lib "SlsApi" ( _
- ByVal pszProductID As String, _
- pLicence As SLS_LICENCE, _
- pChallenge As SLS_CHALLENGE) As Long
-
- Declare Function SLS_REQUEST Lib "SlsApi" Alias "SLS_Request" ( _
- ByVal pszProductID As String, _
- ByVal pszUserName As String, _
- pRequest As SLS_REQUEST, _
- pPermit As SLS_PERMIT, _
- plLicenceHandle As Long, _
- pChallenge As SLS_CHALLENGE) As Long
-
- Declare Function SLS_UPDATE Lib "SlsApi" Alias "SLS_Update" ( _
- ByVal pszProductID As String, _
- ByVal lLicenceHandle As Long, _
- pUpdate As SLS_UPDATE, _
- pPermit As SLS_PERMIT, _
- pChallenge As SLS_CHALLENGE) As Long
-
- Declare Function SLS_RELEASE Lib "SlsApi" Alias "SLS_Release" ( _
- ByVal pszProductID As String, _
- ByVal lLicenceHandle As Long, _
- pRelease As SLS_RELEASE, _
- pChallenge As SLS_CHALLENGE) As Long
-
- Declare Function SLS_GetReference Lib "SlsApi" ( _
- ByVal pszProductID As String, _
- ByVal pszReference As String) As Long
-
- Declare Function SLS_SetLicence Lib "SlsApi" ( _
- ByVal pszProductID As String, _
- ByVal pszReference As String, _
- ByVal pszLicenceKey As String) As Long
-
- Declare Function SLS_QueryLicenceInfo Lib "SlsApi" ( _
- ByVal pszProductID As String, _
- pLicenceInfo As SLS_LICENCE_INFO) As Long
-
- 'Challenge
- Declare Function SLS_CreateChallenge Lib "SlsApi" ( _
- pSecretArray As SLS_SECRET, _
- ByVal nSecrectSize As Integer, _
- pbStream As Any, _
- ByVal nStreamSize As Integer, _
- pChallenge As SLS_CHALLENGE) As Long
-
- Declare Function SLS_VerifyChallenge Lib "SlsApi" ( _
- pSecretArray As SLS_SECRET, _
- ByVal nSecrectSize As Integer, _
- pbStream As Any, _
- ByVal nStreamSize As Integer, _
- pChallenge As SLS_CHALLENGE) As Long
-
- 'SLS_GetErrorMessage
- 'Get Error Mesaage. pszErrorMessage points to buffer allocated by caller,
- 'the minimum length of the buffer is 256 bytes
- Declare Function SLS_GetErrorMessage Lib "SlsApi" ( _
- ByVal hr As Long, _
- ByVal pszErrorMessage As String) As Long
-
- 'Others
- Declare Function SLS_IsProductInstalled Lib "SlsApi" ( _
- ByVal pszProductID As String) As Long
-
- Declare Function SLS_IsProductRegistered Lib "SlsApi" ( _
- ByVal pszProductID As String) As Long
-
- Declare Function SLS_IsProductLicensed Lib "SlsApi" ( _
- ByVal pszProductID As String) As Long
-
- Declare Function SLS_SetReclaimTime Lib "SlsApi" ( _
- ByVal nMinutes As Long) As Long
-
- Declare Function SLS_SetOptions Lib "SlsApi" ( _
- ByVal pszProductID As String, _
- ByVal lLicenceHandle As Long, _
- pOptions As SLS_OPTIONS, _
- pChallenge As SLS_CHALLENGE) As Long
-
- Declare Function SLS_Terminate Lib "SlsApi" ( _
- ByVal pszProductID As String, _
- ByVal pszTerminationCode As String) As Long
-
- Declare Function SLS_Remove Lib "SlsApi" ( _
- ByVal pszProductID As String, _
- ByVal nRemoveOptions As Long, _
- pChallenge As SLS_CHALLENGE) As Long
-
- '//Get LS Status Code
- Function SLS_SCODE(hr As Long) As Long
- SLS_SCODE = hr And &HFFFF&
- End Function
-